/**
 * 
 */
package com.ph.shopping.facade.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import com.alibaba.dubbo.config.annotation.Service;
import com.ph.shopping.common.core.base.BaseMapper;
import com.ph.shopping.facade.merchant.entity.Merchant;
import com.ph.shopping.facade.merchant.entity.MerchantImage;
import com.ph.shopping.facade.merchant.entity.UserBalance;
import com.ph.shopping.facade.merchant.entity.UserBalanceRecord;
import com.ph.shopping.facade.merchant.vo.CommunityVo;
import com.ph.shopping.facade.merchant.vo.MerchantDetaileVo;
import com.ph.shopping.facade.merchant.vo.PositionVo;
import com.ph.shopping.facade.merchant.vo.UserBalanceRecordVo;

/**
 * @项目：phshopping-service-merchant
 *
 * @描述：商户接口实现
 *
 * @作者： 舒豪
 *
 * @创建时间：2017年3月13日
 *
 * @Copyright @2017 by 舒豪
 */
@Component
@Service(version="1.0.0")
public interface MerchantMapper extends BaseMapper<Merchant>{
	/**
	 * 商户id获取商户信息
	 * @param merchant
	 * @return
	 */
	public MerchantDetaileVo  detaileMerchant(Merchant merchant); 
	/**
	 * 商户id获取商户图片 需要商户id 图片类型
	 * @param map
	 * @return
	 */
	public List<MerchantImage> merchantImageByMerchantID(Map<String, Object> map);

	/**
	 * 所有的位置
	 * @return
	 */
	public  List<PositionVo>  getAllPosition(@Param("pid") String pid);
	/**
	 * 商户列表
	 */
	public  List<MerchantDetaileVo>  getMerchantList(Merchant merchant);
	/**
	 * 新增商户
	 */
	public  void  addMerchant(Merchant merchant);
	/**
	 * 新增商户图片
	 */
	public  void  addMerchantImage(List<MerchantImage> list);
	/**
	 * 删除商户图片
	 */
	public  void  deteleMerchantImage(Long id);
	/**
	 * 修改商户状态
	 */
	public  void  updateMerchatStatues(Merchant merchant);
	
	/**
	 * 修改回填
	 */
	public  MerchantDetaileVo  getMerchantDetailForUpdate(Merchant merchant);
	/**
	 * 查询商户 供应商  代理 的余额
	 */
	public  UserBalance  getUserBalance(UserBalance userBalance);
	/**
	 * 通过商户id获取商户信息
	 */
	public Merchant getMerchantById(Merchant merchant);
	
	/**
	 * 修改商户 供应商 余额
	 */
	public  int  updateUserBalance(UserBalance userBalance);
	/**
	 * 插入余额流水记录表
	 */
	public int insertUserBalanceRecord(UserBalanceRecord userBalanceRecord);
	
	/**
	 * 获取供应链和线下订单的记录----来源ph_user_balance_record表
	 * 
	 * @param userBalanceVo
	 */
	public List<UserBalanceRecordVo> getUserBalanceRecordVoList( UserBalanceRecordVo userBalanceRecordVo);
	
	/**
	 * 获取充值和线上订单记录----来源ph_member_charge_record表排除供应链的类型
	 * 
	 * @param userBalanceVo
	 */
	public List<UserBalanceRecordVo> getUserChargeRecordVoList( UserBalanceRecordVo userBalanceRecordVo);
	
	/**
	 * 新增商户的余额账户默认给他余额设置为0  ph_user_balance
	 * @param merchant
	 * @return
	 */
	public  int addMerchantBalance(Merchant merchant);
}
